ProgramNode(0...246)(
  [:foo, :pair],
  StatementsNode(0...246)(
    [IfNode(0...18)(
       (0...2),
       RegularExpressionNode(3...8)((3...4), (4...7), (7...8), "foo", 0),
       StatementsNode(11...14)(
         [CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "bar")]
       ),
       nil,
       (15...18)
     ),
     IfNode(19...31)(
       (19...21),
       IntegerNode(22...23)(),
       StatementsNode(26...27)([IntegerNode(26...27)()]),
       nil,
       (28...31)
     ),
     IfNode(32...53)(
       (32...34),
       IntegerNode(35...36)(),
       StatementsNode(39...40)([IntegerNode(39...40)()]),
       ElseNode(41...53)(
         (41...45),
         StatementsNode(48...49)([IntegerNode(48...49)()]),
         (50...53)
       ),
       (50...53)
     ),
     UnlessNode(54...72)(
       (54...60),
       IntegerNode(61...62)(),
       StatementsNode(65...68)([NilNode(65...68)()]),
       nil,
       (69...72)
     ),
     UnlessNode(73...89)(
       (73...79),
       IntegerNode(80...81)(),
       StatementsNode(84...85)([IntegerNode(84...85)()]),
       nil,
       (86...89)
     ),
     IfNode(90...100)(
       (90...92),
       CallNode(93...96)(nil, nil, (93...96), nil, nil, nil, nil, 0, "foo"),
       nil,
       nil,
       (97...100)
     ),
     ModuleNode(102...133)(
       [:foo],
       (102...108),
       ConstantReadNode(109...110)(),
       StatementsNode(113...129)(
         [IfNode(113...129)(
            (123...125),
            LocalVariableReadNode(126...129)(:foo, 0),
            StatementsNode(113...122)(
              [LocalVariableWriteNode(113...122)(
                 :foo,
                 0,
                 CallNode(119...122)(
                   nil,
                   nil,
                   (119...122),
                   nil,
                   nil,
                   nil,
                   nil,
                   0,
                   "bar"
                 ),
                 (113...116),
                 (117...118)
               )]
            ),
            nil,
            nil
          )]
       ),
       (130...133)
     ),
     ModuleNode(135...170)(
       [:foo],
       (135...141),
       ConstantReadNode(142...143)(),
       StatementsNode(146...166)(
         [UnlessNode(146...166)(
            (156...162),
            LocalVariableReadNode(163...166)(:foo, 0),
            StatementsNode(146...155)(
              [LocalVariableWriteNode(146...155)(
                 :foo,
                 0,
                 CallNode(152...155)(
                   nil,
                   nil,
                   (152...155),
                   nil,
                   nil,
                   nil,
                   nil,
                   0,
                   "bar"
                 ),
                 (146...149),
                 (150...151)
               )]
            ),
            nil,
            nil
          )]
       ),
       (167...170)
     ),
     UnlessNode(171...197)(
       (171...177),
       CallNode(178...181)(
         nil,
         nil,
         (178...181),
         nil,
         nil,
         nil,
         nil,
         0,
         "foo"
       ),
       StatementsNode(184...193)(
         [LocalVariableWriteNode(184...193)(
            :foo,
            0,
            CallNode(190...193)(
              nil,
              nil,
              (190...193),
              nil,
              nil,
              nil,
              nil,
              0,
              "bar"
            ),
            (184...187),
            (188...189)
          )]
       ),
       nil,
       (194...197)
     ),
     IfNode(198...246)(
       (198...200),
       CallNode(201...222)(
         nil,
         nil,
         (201...204),
         nil,
         nil,
         nil,
         BlockNode(205...222)(
           [:pair],
           BlockParametersNode(207...213)(
             ParametersNode(208...212)(
               [RequiredParameterNode(208...212)(:pair)],
               [],
               [],
               nil,
               [],
               nil,
               nil
             ),
             [],
             (207...208),
             (212...213)
           ),
           StatementsNode(216...220)(
             [LocalVariableReadNode(216...220)(:pair, 0)]
           ),
           (205...206),
           (221...222)
         ),
         0,
         "foo"
       ),
       StatementsNode(225...242)(
         [LocalVariableWriteNode(225...236)(
            :pair,
            0,
            SymbolNode(232...236)((232...233), (233...236), nil, "foo"),
            (225...229),
            (230...231)
          ),
          LocalVariableReadNode(239...242)(:foo, 0)]
       ),
       nil,
       (243...246)
     )]
  )
)
